package tedu.api.object;

public class IntegerDemo {
    public static void main(String[] args) {
        //演示包装类的常用操作：
        //1)可以通过包装类来获取基本类型的取值范围：
        int max = Integer.MAX_VALUE;
        int min = Integer.MIN_VALUE;
        System.out.println("int最大值："+max+",最小值："+min);

        long max1 = Long.MAX_VALUE;
        long min1 = Long.MIN_VALUE;
        System.out.println("long最大值："+max1+",最小值："+min1);

        System.out.println("double最大值："+Double.MAX_VALUE+",最小值："+Double.MIN_VALUE);

        System.out.println("------------------------");





        //2)包装类可以将字符串转换为对应的基本类型---------熟练掌握
        String s1 = "0000239";
        if (s1.matches("-?\\d+")) {
            int age = Integer.parseInt(s1);
            System.out.println(age);
        }
        String s2 = "-.56";
        /*double price = Double.parseDouble(s2);
        System.out.println(price);*/
        if(s2.matches("-?\\d*\\.?\\d*")){
            double price = Double.parseDouble(s2);
            System.out.println(price);
        }


        System.out.println("------------------------");
        /*
        //触发了自动装箱特性，会被编译为：Integer i = Integer.valueOf(5);
        Integer i = 5;//基本类型到包装类--------装箱
        //触发了自动拆箱特性，会被编译为：int j = i.intValue();
        int j = i;//包装类到基本类型--------拆箱
        System.out.println("------------------------");
        //演示包装类的定义：
        Integer i1 = new Integer(500);
        Integer i2 = new Integer(500);
        System.out.println(i1 == i2);//false,比较的是地址
        System.out.println(i1.equals(i2));//true,包装类重写equals()比较值了

        //valueOf()方法会复用一个字节(-128~127)范围内的数据，建议使用valueOf()
        Integer i3 = Integer.valueOf(500);
        Integer i4 = Integer.valueOf(500);
        System.out.println(i3 == i4);//false
        System.out.println(i3.equals(i4));//true,包装类重写equals()比较值了
        System.out.println("------------------------");
        //演示包装类的定义：
        Integer i12 = new Integer(5);
        Integer i22 = new Integer(5);
        System.out.println(i12 == i22);//false,比较的是地址
        System.out.println(i12.equals(i22));//true,包装类重写equals()比较值了

        //valueOf()方法会复用一个字节(-128~127)范围内的数据，建议使用valueOf()
        Integer i32 = Integer.valueOf(5);
        Integer i42 = Integer.valueOf(5);
        System.out.println(i32 == i42);//true
        System.out.println(i32.equals(i42));//true,包装类重写equals()比较值了
        System.out.println("------------------------");

        //将包装类转换为基本类型
        int m = i4.intValue();
        System.out.println(m);

         */

    }
}
